1. Field of the Invention
The present invention relates to a technique of generating a color conversion table for converting color image data into a color (device color) in the gamut of an output device.
2. Description of the Related Art
When using an image output device such as a printer, a color space (e.g., RGB color space) of an image input device or input image or a device-independent color space (Lab/XYZ color space or the like) is color-converted to a color space (e.g., CMYK color space or RGB color space) of the image output device. With this color conversion, input color signals are converted into output color signals of the color space of the image output device, and are output from an image output unit as a color image.
Conventionally, color conversion from the color space of an input device to that of an output device is implemented, for example, by matrix conversion. However, in order to improve accuracy, a three-dimensional (3D) look-up table (LUT) has been used in recent years.
A general generation method of an LUT for color-converting the color space of an input device or a device-independent color space to that of an output device is as follows.
First, for an input color of a grid point forming an LUT, a color included in the gamut of an output device is determined as a corresponding color. A color (device color: e.g., CMYK color or RGB color) which is closest to the corresponding color is searched for in the color space of the output device, and the located device color is set as an output color for the grid point. When output colors corresponding to the input colors of all grid points have been obtained, the LUT is complete.
Note that a closest device color is generally searched for in a uniform color space (Lab color space, Luv color space, or the like).
In color conversion using an LUT, only the output values corresponding to the input values of the grid points are provided as the LUT. Accordingly, output values corresponding to input values other than those of the grid points are calculated by interpolation. As an interpolation method, linear interpolation such as cubic interpolation or tetrahedron interpolation or nonlinear interpolation such as spline interpolation is available.
From the viewpoint of conversion accuracy, ideal color conversion is obtained by determining corresponding colors of all input colors by using colors included in the gamut of an output device, searching for device colors closest to the respective corresponding colors, and setting the located device colors as output values. However, this method is not practical because it requires a process for determining corresponding colors for all input colors, which requires a huge amount of calculation. Therefore, color conversion using an LUT is executed as a practical method.
In color conversion using an LUT, since only the output values corresponding to the grid points are provided as the LUT, the output values are ensured. However, since output values corresponding to input values other than those of the grid points are calculated by interpolation, output values other than those of the grid points differ between matrix conversion and LUT conversion. Therefore, the accuracy of certain colors may be lower in the case of color conversion using an LUT.
As a general generation method of an LUT, a device color corresponding to an input value of a grid point forming the LUT is obtained and set as an output value (e.g., patent reference 1: Japanese Patent Laid-Open No. 2002-064719). When performing color conversion using an LUT, although the accuracy of output values other than those of the grid points is low, output values corresponding to input values other than those of the grid points are not considered in the first place when generating the LUT. The accuracy can be improved by increasing the number of grid points of the LUT, however, it cannot be excessively increased because there are constrains as to a memory capacity or the like when attaching an LUT to an output or control device.
A method of correcting an LUT to improve its accuracy when generating an LUT is also available (e.g., patent reference 2: Japanese Patent Laid-Open No. 2003-348365). This method generates an LUT, calculates an output value of the midpoint between grid points of the LUT by interpolation, and corrects the LUT using the difference between the output value of the grid point and that of the midpoint between the grid points.
Such LUT correction aims to improve the tonality of an output result by the LUT. However, while the tonality improves, the output values deviate from the colors to be output.
A method of correcting an LUT by considering output values corresponding to input values other than those of the grid points of the LUT is also available (e.g., patent reference 3: Japanese Patent Laid-Open No. 09-009080).
However, the purpose of this method is to correct output deviations caused by errors produced when estimating a device color from a calorimetric value, and the method requires the output result of a calorimetric measurement of a printout from an output device which uses a generated LUT. Colorimetric measurement takes time, and it is wasteful to perform calorimetric measurement only in order to correct theoretical errors that occur upon interpolation of an LUT.